package com.jwsoft.manager.core.integration;

import com.bifang.assistant.common.vo.BaseVO;
import com.github.pagehelper.PageInfo;
import com.jwsoft.manager.common.vo.eduStudentEnrollBefore.*;
import com.jwsoft.manager.common.vo.eduStudentEnrollPre.EduStudentEnrollPreKeyVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollPre.EduStudentEnrollPreQueryVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollPre.EduStudentEnrollPreVO;
import com.jwsoft.manager.common.vo.individuation.HouseHoldSaveVO;

/**
 * 义务教育阶段预报名表业务本地接口
 *
 * @author wangtao
 * @since 2022-12-13
 */
public interface EduStudentEnrollBeforeIntegration {
    /** 分页查询 */
    PageInfo<EduStudentEnrollBeforeVO> getList(EduStudentEnrollBeforeQueryVO vo);
    /** 根据主键查询详情 */
    EduStudentEnrollBeforeVO getById(EduStudentEnrollBeforeKeyVO vo);
    /** 保存前统一校验*/
    void checkSave(EduStudentEnrollBeforeVO vo);
    /** 新增 */
    EduStudentEnrollBeforeVO add(EduStudentEnrollBeforeVO vo);
    /** 新增 管理员 */
    EduStudentEnrollBeforeVO addJh(EduStudentEnrollBeforeVO vo);
    /** 修改 */
    StudentEnrollBeforeSaveVO edit(StudentEnrollBeforeSaveVO vo);
    /** 修改 管理员*/
    StudentEnrollBeforeSaveVO editJh(StudentEnrollBeforeSaveVO vo);
    /** 根据主键删除 */
    void del(EduStudentEnrollBeforeKeyVO vo);
    PageInfo<EduStudentEnrollPreVO> querySpecialList(EduStudentEnrollPreQueryVO vo);
    /**管理员查询特殊通道人员*/
    PageInfo<EduStudentEnrollPreVO> querySpecialListManager(EduStudentEnrollPreQueryVO vo);
    StudentEnrollBeforeSaveVO getSpecialDetail(EduStudentEnrollBeforeQueryVO vo);
    /**
     * 查询预采集数据
     * */
    PageInfo<EduStudentEnrollPreVO> queryPreList(EduStudentEnrollPreQueryVO vo);
    PageInfo<EduStudentEnrollPreVO> queryPagePreList(EduStudentEnrollPreQueryVO vo);
    /**
     * 根据条件查询预报名数据
     * */
    PageInfo<EduStudentEnrollBeforeVO> queryBeforeList(EduStudentEnrollBeforeQueryVO studentEnrollBeforeQueryVO);
    PageInfo<EduStudentEnrollBeforeVO> queryBeforePageList(EduStudentEnrollBeforeQueryVO studentEnrollBeforeQueryVO);
    /**
     * 获取预采集详情信息
     * */
    EduStudentEnrollPreVO getPreDetail(EduStudentEnrollPreKeyVO vo);
    /**
     * 根据预采集获取房产
     * */
    void getFcByPreId(EduStudentEnrollPreKeyVO vo);
    /**
     * 根据预采集获取房产不校验
     * */
    void getFcByPreIdNoClick(EduStudentEnrollPreKeyVO vo);
    /**
     * 根据预采集获取户籍
     * */
    void getHjByPreId(HouseHoldSaveVO vo);
    /**
     * 根据预采集获取网签
     * */
    void getWqByPreId(EduStudentEnrollPreKeyVO vo);
    /**
     * 根据预采集获取参保
     * */
    void getCbByPreId(EduStudentEnrollPreKeyVO vo);
    /**
     * 根据预采集获取企业
     * */
    void getQyByPreId(EduStudentEnrollPreKeyVO vo);

    /**
     * 根据预采集获取居住证信息
     * */
    void getJzzByPreId(EduStudentEnrollPreKeyVO vo);

    //重置比对错误数据
    void resetError(BaseVO vo);

    // 家庭成员信息比对
    String getFamInfoComparison(EduStudentEnrollPreKeyVO vo);

    /**
     * 单个可报名数据生成
     * */
    int createEnrollBefore(EduStudentEnrollPreKeyVO vo);

    /**
     * 预采集批量生成预报名数据
     * **/
    void createBatch(BatchCreateVO vo);

    /**
     * 补报数据重新生成
     **/
    void resetCreateBb(BatchCreateVO vo);
    /**
     * 批量生成缓存清除
     * */
    void clearCacheCreate(BaseVO vo);

    /**
     * 预报名管理人员缓存清除
     * */
    void clearCachePre(EduStudentEnrollPreKeyVO vo);


    /**
     * 修改预报名的代理报名状态
     * @param vo
     */
    void updateAgentEnrollFlag(EduAgentEnrollVO vo);
}
